﻿using Dapper;
using OMG.Fill.Mulberry.Model.Ent;
using ProjectShare;
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
namespace OMG.Fill.Mulberry.Service
{
    /// <summary>
    /// 表8养蚕收益调查情况T_MulSerEarnSurvey通用操作类
    /// </summary>
    public class MulSerEarnSurveys
    {
        /// <summary>
        /// 添加
        /// </summary>
        public virtual ResResult<int> AddInfo(MulSerEarnSurveyEntity model) {
            ResResult<int> obj = new ResResult<int>();
            string strSql = @"INSERT INTO dbo.T_MulSerEarnSurvey";
            strSql +="(";
            strSql +="Id,";
            strSql +="ReportId,";
            strSql +="HouseName,";
            strSql +="SanType,";
            strSql +="Age,";
            strSql +="PlantSanc,";
            strSql +="Elevation,";
            strSql +="CutMethod,";
            strSql +="MulArea,";
            strSql +="SilkwormSpring,";
            strSql +="SilkwormSummer,";
            strSql +="SilkwormIsAutumn,";
            strSql +="SilkwormLateAutumn,";
            strSql +="FreshSpring,";
            strSql +="FreshSummer,";
            strSql +="FreshIsAutumn,";
            strSql +="FreshLateAutumn,";
            strSql +="PriceSpring,";
            strSql +="PriceSummer,";
            strSql +="PriceIsAutumn,";
            strSql +="PriceLateAutumn,";
            strSql +="SilkwormYield,";
            strSql +="SilkwormPrice,";
            strSql += "AverageBenefit)";
            strSql +=" values(";
            strSql +="@Id,";
            strSql +="@ReportId,";
            strSql +="@HouseName,";
            strSql +="@SanType,";
            strSql +="@Age,";
            strSql +="@PlantSanc,";
            strSql +="@Elevation,";
            strSql +="@CutMethod,";
            strSql +="@MulArea,";
            strSql +="@SilkwormSpring,";
            strSql +="@SilkwormSummer,";
            strSql +="@SilkwormIsAutumn,";
            strSql +="@SilkwormLateAutumn,";
            strSql +="@FreshSpring,";
            strSql +="@FreshSummer,";
            strSql +="@FreshIsAutumn,";
            strSql +="@FreshLateAutumn,";
            strSql +="@PriceSpring,";
            strSql +="@PriceSummer,";
            strSql +="@PriceIsAutumn,";
            strSql +="@PriceLateAutumn,";
            strSql +="@SilkwormYield,";
            strSql +="@SilkwormPrice,";
            strSql += "@AverageBenefit)";
            try
            {
                using (var dbCon = ConnectFactory.GetOpenConnection())
                {
                    model.Id= CustomFun.GetGuid();
                    int result = dbCon.Execute(strSql, model);
                    if (result > 0)
                    {
                        obj.model = result;
                        obj.status = DefaultKey.SuccessResult;
                        obj.message = "添加成功！";
                    }
                    else
                    {
                        obj.model = result;
                        obj.status = DefaultKey.InfoResult;
                        obj.message = "添加失败！数量为:" + result;
                    }
                    dbCon.Dispose();//数据库连接释放
                    return obj;
                }
            }
            catch (Exception ex)
            {
                obj.status = DefaultKey.ErrorResult;
                obj.message = ex.ToString().Trim();
                LogHelper.ErrorLog("新增表8养蚕收益调查情况T_MulSerEarnSurvey对象信息失败", ex);
                return obj;
            }
        }
        /// <summary>
        /// 修改
        /// </summary>
        public virtual ResResult<int> UpdateInfo(MulSerEarnSurveyEntity model)
        {
            ResResult<int> obj = new ResResult<int>();
            string strSql = @"UPDATE dbo.T_MulSerEarnSurvey set ";
            strSql+="ReportId = @ReportId,";
            strSql+="HouseName = @HouseName,";
            strSql+="SanType = @SanType,";
            strSql+="Age = @Age,";
            strSql+="PlantSanc = @PlantSanc,";
            strSql+="Elevation = @Elevation,";
            strSql+="CutMethod = @CutMethod,";
            strSql+="MulArea = @MulArea,";
            strSql+="SilkwormSpring = @SilkwormSpring,";
            strSql+="SilkwormSummer = @SilkwormSummer,";
            strSql+="SilkwormIsAutumn = @SilkwormIsAutumn,";
            strSql+="SilkwormLateAutumn = @SilkwormLateAutumn,";
            strSql+="FreshSpring = @FreshSpring,";
            strSql+="FreshSummer = @FreshSummer,";
            strSql+="FreshIsAutumn = @FreshIsAutumn,";
            strSql+="FreshLateAutumn = @FreshLateAutumn,";
            strSql+="PriceSpring = @PriceSpring,";
            strSql+="PriceSummer = @PriceSummer,";
            strSql+="PriceIsAutumn = @PriceIsAutumn,";
            strSql+="PriceLateAutumn = @PriceLateAutumn,";
            strSql+="SilkwormYield = @SilkwormYield,";
            strSql+="SilkwormPrice = @SilkwormPrice,";
            strSql += "AverageBenefit=@AverageBenefit";
            strSql +=" where Id = @Id";
           try
            {
                using (var dbCon = ConnectFactory.GetOpenConnection())
                {
                    int result = dbCon.Execute(strSql, model);
                    if (result > 0)
                    {
                        obj.model = result;
                        obj.status = DefaultKey.SuccessResult;
                        obj.message = "更新成功！";
                    }
                    else
                    {
                        obj.model = result;
                        obj.status = DefaultKey.InfoResult;
                        obj.message = "更新失败！数量为:" + result;
                    }
                    dbCon.Dispose();//数据库连接释放
                    return obj;
                }
            }
            catch (Exception ex)
            {
                obj.status = DefaultKey.ErrorResult;
                obj.message = ex.ToString().Trim();
                LogHelper.ErrorLog("更新表8养蚕收益调查情况T_MulSerEarnSurvey对象信息失败", ex);
                return obj;
            }
        }
        /// <summary>
        /// 删除
        /// </summary>
        public virtual ResResult<int> DeleteInfo(string id)
        {
            ResResult<int> obj = new ResResult<int>();
            string strSql = @"delete from dbo.T_MulSerEarnSurvey where Id = @Id";
            int result;
            try
            {
                using (var dbCon = ConnectFactory.GetOpenConnection())
                {
                    result = dbCon.Execute(strSql, new { Id = id });
                    if (result > 0)
                    {
                        obj.model = result;
                        obj.status = DefaultKey.SuccessResult;
                        obj.message = "删除成功！";
                    }
                    else
                    {
                        obj.model = result;
                        obj.status = DefaultKey.InfoResult;
                        obj.message = "删除失败！数量为:" + result;
                    }
                    dbCon.Dispose();//数据库连接释放
                    return obj;
                }
            }
            catch (Exception ex)
            {
                obj.status = DefaultKey.ErrorResult;
                obj.message = ex.ToString().Trim();
                LogHelper.ErrorLog("删除表8养蚕收益调查情况T_MulSerEarnSurvey对象信息失败", ex);
                return obj;
            }
        }
        /// <summary>
        /// 批量删除
        /// </summary>
        public virtual ResResult<int> DeleteBatch(string[] ids)
        {
            ResResult<int> obj = new ResResult<int>();
            string strIds = string.Join(",", ids.Select(x => x.ToString()).ToArray());
            string strSql = @"delete from dbo.T_MulSerEarnSurvey where Id in @ids";
            var dynamicSqlParam = new DynamicParameters();
            dynamicSqlParam.Add("ids", ids.ToArray(), null, null, null);
            int result;
            try
            {
                using (var dbCon = ConnectFactory.GetOpenConnection())
                {
                    result = dbCon.Execute(strSql, dynamicSqlParam);
                    if (result > 0)
                    {
                        obj.model = result;
                        obj.status = DefaultKey.SuccessResult;
                        obj.message = "删除成功！";
                    }
                    else
                    {
                        obj.status = DefaultKey.InfoResult;
                        obj.message = "删除失败！数量为:" + result;
                    }
                    dbCon.Dispose();//数据库连接释放
                    return obj;
                }
            }
            catch (Exception ex)
            {
                LogHelper.ErrorLog("获取数据字典表批量删除表8养蚕收益调查情况T_MulSerEarnSurvey表失败", ex);
                obj.message = ex.ToString().Trim();
                obj.status = DefaultKey.ErrorResult;
                return obj;
            }
        }
        /// <summary>
        /// 获取指定对象
        /// </summary>
        public virtual ResResult<MulSerEarnSurveyEntity> GetModel(string id) {
            ResResult<MulSerEarnSurveyEntity> obj = new ResResult<MulSerEarnSurveyEntity>();
            string strSql = @"select * from dbo.T_MulSerEarnSurvey where Id = @Id";
            try
            {
                using (var dbCon = ConnectFactory.GetOpenConnection())
                {
                    obj.model = dbCon.Query<MulSerEarnSurveyEntity>(strSql, new { Id = id }).FirstOrDefault();
                    obj.status = DefaultKey.SuccessResult;
                    obj.message = "获取成功！";
                    dbCon.Dispose();//数据库连接释放
                    return obj;
                }
            }
            catch (Exception ex)
            {
                obj.status = DefaultKey.ErrorResult;
                obj.message = ex.ToString().Trim();
                LogHelper.ErrorLog("获取表8养蚕收益调查情况T_MulSerEarnSurvey对象信息失败", ex);
                return obj;
            }
        }
        /// <summary>
        /// 获取全部列表
        /// </summary>
        /// <returns></returns>
        public virtual ResResult<List<MulSerEarnSurveyEntity>> GetList()
        {
            ResResult<List<MulSerEarnSurveyEntity>> obj = new ResResult<List<MulSerEarnSurveyEntity>>();
            string strSql = @"select * from dbo.T_MulSerEarnSurvey";
            try
            {
                using (var dbCon = ConnectFactory.GetOpenConnection())
                {
                    obj.model = dbCon.Query<MulSerEarnSurveyEntity>(strSql).ToList();
                    obj.status = DefaultKey.SuccessResult;
                    obj.message = "获取成功！";
                    dbCon.Dispose();//数据库连接释放
                    return obj;
                }
            }
            catch (Exception ex)
            {
                obj.status = DefaultKey.ErrorResult;
                obj.message = ex.ToString().Trim();
                LogHelper.ErrorLog("更新表8养蚕收益调查情况T_MulSerEarnSurvey对象信息失败", ex);
                return obj;
            }
        }
    }
}